package com.easonji.admin.service;

import java.util.List;

import com.easonji.admin.form.RoleForm;
import com.easonji.admin.query.RoleQuery;
import com.easonji.common.node.TreeNode;

/**
 * @ClassName: RoleService
 * @Description: 角色服务接口
 * @Author: LiuJun
 * @date: 2018/07/30 14:06:36
 * @Version: 1.0
 * @Copyright: Copyright (c) 2018 - 2019
 */
public interface RoleService {

    /**
     * 查询角色列表
     * 
     * @param roleQuery
     *            角色列表查询条件
     * @return 角色列表
     */
    Object queryRoleList(RoleQuery roleQuery);

    /**
     * 根据角色ID，查询角色信息
     * 
     * @param roleId
     *            角色ID
     * @return 角色信息
     */
    Object queryRole(Integer roleId);

    /**
     * 添加角色
     * 
     * @param roleForm
     *            角色表单
     * @return 添加结果
     */
    Integer saveRole(RoleForm roleForm);

    /**
     * 更新角色
     * 
     * @param roleForm
     *            角色表单
     * @return 更新结果
     */
    Integer updateRole(RoleForm roleForm);

    /**
     * 删除角色
     * 
     * @param roleId
     *            角色ID
     * @return 删除结果
     */
    void removeRole(Integer roleId);

    /**
     * 设置角色的权限
     * 
     * @param roleId
     *            角色ID
     * @param permissionIds
     *            权限ID
     * @return 设置结果
     */
    void setAuthority(Integer roleId, String permissionIds);

    /**
     * 根据角色ID，获取角色列表树
     * 
     * @param userId
     *            角色ID
     * @return 角色列表树
     */
    List<TreeNode> queryRoleTreeNode(Integer userId);
}
